1. Field of the Invention
The present invention relates to a hashing output driver which allows for very short setup times of the inputs and a very fast evaluation of the hashing function.
2. Description of the Prior Art
A hashing output driver is useful in a variety of circuit applications. For example, in prior art virtual memory systems in multi-user environments, two address portions are sometimes used to locate data stored in physical memory so as to reduce the miss rate. In particular, a space identifier and a virtual page number are together used to identify the location in physical memory at which particular data is stored. The space identifier identifies a space in virtual memory which is unique to each user process and is determined by the operating system, while the virtual page number identifies a particular page of a paged virtual memory. The space identifier and virtual page number can be hashed together (i.e., the exclusive OR of their values in digital form is taken), and the result is the physical address used for accessing the data stored in the physical memory. Accordingly, such systems use a hashing address driver which drives the hashed signals to the output.
Such a technique prevents all users who desire the same common page from mapping into the exact same physical location by distributing the common page throughout the memory in accordance with the different space identifiers. In other words, a virtual page which is used frequently is distributed throughout the memory or cache and is made accessible to all users of the system by granting everyone a different space identifier for mapping that page into different segments of virtual memory. As a result, the common page may be swapped into different locations in memory or cache for each process. Such a technique provides for more efficient use of the segmented memory cache by limiting the number of cache misses.
However, such a technique typically adversely affects the performance of the system because the hashing function of the hashing output driver typically takes a while to evaluate. Generally, the hashing function is implemented as an exclusive OR gate which receives the space identifier and the virtual page number at inputs thereof and outputs driving signals to a separate output driver for driving the addresses to the address bus of the virtual memory system. Although such a system is typically quite effective, the efficiency of the exclusive OR gate is limited by late arriving address inputs and by slow evaluation of the hashing function by the exclusive OR gate.
Accordingly, a hashing output driver is desired for use in such a system so as to improve performance despite late arriving inputs by increasing the speed of the evaluation of the hashing function. Preferably, the hashing function will be integrated into the output driver so as to increase performance and facilitate manufacture. The present invention has been designed to meet these needs.